home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 4 / The Arsenal Files 4 (Arsenal Computer).ISO / gen_prog / fastgraf.faq < prev    next >
Text File  |  1995-04-06  |  32KB  |  670 lines

  1. Fastgraph FAQ, last updated February 6, 1995
  2.  
  3. Introduction:
  4.  
  5. Fastgraph is a programmer's graphics library commonly used for writing games,
  6. but useful for a variety of graphics applications. Fastgraph was written by
  7. Ted Gruber and is supported by Ted and Diana Gruber of Ted Gruber Software. It
  8. is available through mail order from the Coriolis Group, which may be
  9. contacted at: 1-800-410-0192; outside the U.S. call (602) 483-0192; the order
  10. fax line is (602) 483-0193.
  11.  
  12. For information and technical support, please do not call the Coriolis Group.
  13. Instead, contact Ted Gruber Software directly at:
  14.  
  15. Ted Gruber Software      (702) 735-1980 (voice)
  16. P.O. Box 13408           (702) 735-4603 (fax)
  17. Las Vegas, NV 89112      (702) 796-7134 (BBS)
  18.  
  19. Email: 72000.1642@compuserve.com
  20. ftp: ftp@accessnv.com
  21.  
  22. Frequently asked questions:
  23.  
  24. Q. What is a graphics library?
  25. A. A graphics library is a collection of general purpose functions which may
  26. be linked into your program. The purpose of Fastgraph is to give you complete
  27. control of the video environment, including initializing video memory,
  28. manipulating it, displaying images on the screen, changing colors, and so on.
  29.  
  30. Q. What is the difference between a graphics library and a game engine?
  31. A. Game engines are usually specific to a particular genre of game and provide
  32. medium level functions such as collision detection. A graphics library is
  33. general purpose low-level functions which can be used in many different kinds
  34. of programs.
  35.  
  36. Q. How long has Fastgraph been around?
  37. A. Ted started writing Fastgraph in 1987, and it has been under constant
  38. construction ever since. Diana used Fastgraph to write her first game in 1987.
  39.  
  40. Q. How fast is Fastgraph?
  41. A. It's fast.
  42.  
  43. Q. What games have been written with Fastgraph?
  44. A. We do not have exact information on this, but the short answer is LOTS.
  45. Many commercial and shareware games have been written with Fastgraph,
  46. including arcade games, adventure games, puzzle games, card games, RPG's, and
  47. so on. For some sample shareware games, call our bbs at (702) 796-7134 or
  48. check our ftp site at ftp.accessnv.com.
  49.  
  50. Q. Are there any requirements for releasing a game with Fastgraph?
  51.  
  52. A. We only ask that you do not release public domain programs using
  53. Fastgraph.  Please copyright your software, in your name or in your company's
  54. name. You can do this by simply putting "copyright 1995 John Doe" on your
  55. software.  (For more information consult an attorney or get a good book on
  56. the subject.) This is for your protection as well as ours. Your software is
  57. valuable, you should claim your copyright. We also recommend you register
  58. your copyright as appropriate, but that is up to you.
  59.  
  60. Otherwise, there are no restrictions on the distribution of programs written
  61. with Fastgraph. There are no royalties or license fees, and you are not
  62. required to mention that you used Fastgraph to write your game (although we
  63. think it is nice if you do).
  64.  
  65. Q. Why are you removing the GIF functions from Fastgraph?
  66. A. Both Unisys and and IBM are claiming patents on the LZW technology, which
  67. is the cornerstone of GIF file compression. Now Unisys is requiring a royalty
  68. on any program that compresses or  decompresses GIF files. If you write a
  69. program that uses Fastgraph to read or write a GIF file, you could owe
  70. royalties to Unisys. We are opposed to paying royalties to Unisys. We are
  71. opposed to software patents in general. We recommend you avoid using the GIF
  72. functions.
  73.  
  74. Q. What is the current version number?
  75. A. We are currently shipping Fastgraph 4.02.
  76.  
  77. Q. How much does it cost?
  78. A. Fastgraph 4.02 costs $249 with no royalties or license fees.
  79.  
  80. Q. Does that include source code?
  81. A. No. Source code is extra. Call the TGS office for information about source
  82. code pricing.
  83.  
  84. Q. How much does it cost to upgrade?
  85. A. You can upgrade from 3.x to 4.02 for $69 plus shipping. That includes a new
  86. manual (approximately 750 pages).
  87.  
  88. Q. What is Fastgraph/Fonts?
  89. A. Fastgraph/Fonts is a Fastgraph add-on product providing 40 bitmapped fonts
  90. and the code to display them, as well as a font editor and a conversion
  91. program to use TrueType fonts with Fastgraph. The Fastgraph Font editor was
  92. written by Steve Hodsdon.
  93.  
  94. Q. What is Fastgraph/Image?
  95. A. Fastgraph/Image is a file resource manager. You can stuff lots of small
  96. files into one binary file, sometimes referred to as a library file. It comes
  97. with a library manager to conveniently add files to the resource file. The
  98. resource file is indexed for quick access.
  99.  
  100. Q. Is Fastgraph required to use the Fonts and Image products?
  101. A. Yes.
  102.  
  103. Q. What do the Fonts and Image products cost?
  104. A. Fastgraph/Fonts costs $69 and Fastgraph/Image costs $69.
  105.  
  106. Q. Are there any package deals?
  107. A. If you already have Fastgraph, you can buy the Fonts and Image products
  108. together for $118. That saves you $20. If you want to buy all three products,
  109. Fastgraph, Fastgraph/Fonts and Fastgraph/Image, we call that the Fastgraph
  110. Power Pack and sell it for $359.
  111.  
  112. Q. What is Fastgraph/Light?
  113. A. Fastgraph/Light is the shareware version of Fastgraph.
  114.  
  115. Q. What is the difference between Fastgraph/Light and Fastgraph?
  116. A. The biggest difference is the TSR driver, called FGDRIVER.EXE, which must
  117. be loaded into memory before any programs linked with Fastgraph/Light may be
  118. run. Fastgraph/Light supports real mode only, while Fastgraph includes
  119. libraries for real mode, 16-bit protected mode, and 32-bit protected mode.
  120. Also, there are several functions missing from the Light version, including
  121. the functions which require floating point (world space coordinates and
  122. stroked character fonts) and the GIF functions, which are going to be removed
  123. from Fastgraph soon as well.
  124.  
  125. Q. Do Fastgraph/Light users get documentation and technical support?
  126. A. The documentation is archived and distributed online (or on disk) with
  127. Fastgraph/Light. Everybody gets technical support.
  128.  
  129. Q. What is Fastgraph/Help?
  130. A. Fastgraph/Help is a hypertext help system that may be used as a standalone
  131. program or a tsr. You may highlight Fastgraph functions in your code and press
  132. a hotkey combination, and you will get an explanation of the function and the
  133. parameters that are passed to it.
  134.  
  135. Q. Did you write Fastgraph/Help?
  136. A. No. Mike Stephenson wrote it. We paid him for it and provide it to you for
  137. free.
  138.  
  139. Q. Has anybody else helped write parts of Fastgraph?
  140. A. Randy Dryburgh originally wrote parts of Fastgraph/Fonts. John Wagner wrote
  141. the original Fastgraph/Image. Steve Hodson wrote the Fastgraph font editor and
  142. the TrueType conversion program.
  143.  
  144. Q. What languages was Fastgraph written in?
  145. A. All of Fastgraph is written in assembly language, except for the few
  146. functions which expect floating point parameters. Those are written in the
  147. language of the supported compiler.
  148.  
  149. Q. What languages does Fastgraph support?
  150. A. Fastgraph supports C/C++, Fortran, Basic, Pascal, and ASM. Some programmers
  151. have found ways to use Fastgraph with other languages, such as FoxPro and
  152. Turbo Prolog, but we do not guarantee support of those languages and cannot
  153. offer technical support for them.
  154.  
  155. Q. What compilers does Fastgraph support?
  156. A. Borland C++ (version 2.0 or later)
  157.    Borland Pascal (version 7.0 or later)
  158.    MetaWare High C/C++ (version 3.0 or later)
  159.    Microsoft BASIC PDS (version 7.0 or 7.1)
  160.    Microsoft C/C++ (version 5.1 or later)
  161.    Microsoft FORTRAN (version 4.0 or later)
  162.    Microsoft FORTRAN PowerStation (version 1.0 or later)
  163.    Microsoft QuickBASIC (version 4.0 or later)
  164.    Microsoft QuickC (version 2.0 or later)
  165.    Microsoft Visual Basic for DOS (version 1.0 or later)
  166.    Microsoft Visual C++ (version 1.0 or later)
  167.    Microsoft Visual C++ 32-bit Edition (version 1.0 or later)
  168.    Power C (version 2.0 or later)
  169.    Turbo C (version 2.0 or later)
  170.    Turbo C++ (version 1.0 or later)
  171.    Turbo Pascal (version 6.0 or later)
  172.    Watcom C/C++ (version 9.5 or later)
  173.    Watcom C32 for DOS (version 9.5 or later)
  174.    Zortech C++ (version 3.0 or later)
  175.  
  176. Q. What 32-bit DOS extenders does Fastgraph support?
  177. A. Borland PowerPack for DOS
  178.    DOSXMSF (Fortran PowerStation)
  179.    Phar Lap TNT Dos-Extender SDK
  180.    Phar Lap TNT Dos-Extender Lite
  181.    Rational Systems DOS/4G
  182.    Rational Systems DOS/4GW
  183.    Rational Systems DOS/4GW Professional
  184.  
  185. Q. What 16-bit DOS extenders does Fastgraph support?
  186.    Borland Pascal 7 (built-in DPMI extender)
  187.    Borland PowerPack for DOS
  188.    Phar Lap 286|Dos-Extender SDK
  189.    Phar Lap 286|Dos-Extender Lite
  190.    Rational Systems DOS/16M
  191.  
  192. Q. What video modes does Fastgraph support?
  193. A.
  194.  
  195. Mode                     No. of    Supported                Supported
  196. No.  Type Resolution     Colors    Adapters                 Displays
  197.  
  198.  0   T    40 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  199.  1   T    40 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  200.  2   T    80 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  201.  3   T    80 x 25        16/8      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  202.  4   G    320 x 200      4         CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  203.  5   G    320 x 200      4         CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  204.  6   G    640 x 200      2/16      CGA,EGA,VGA,MCGA,SVGA    RGB,ECD,VGA,SVGA
  205.  7   T    80 x 25        b/w       MDA,HGC,EGA,VGA,SVGA     Monochrome
  206.  9   G    320 x 200      16        Tandy 1000,PCjr          RGB
  207. 11   G    720 x 348      b/w       HGC                      Monochrome
  208. 12   G    320 x 200      b/w       HGC                      Monochrome
  209. 13   G    320 x 200      16        EGA,VGA,SVGA             RGB,ECD,VGA,SVGA
  210. 14   G    640 x 200      16        EGA,VGA,SVGA             RGB,ECD,VGA,SVGA
  211. 15   G    640 x 350      b/w       EGA,VGA,SVGA             Mono,VGA,SVGA
  212. 16   G    640 x 350      16/64     EGA,VGA,SVGA             ECD,VGA,SVGA
  213. 17   G    640 x 480      2/256K    VGA,MCGA,SVGA            VGA,SVGA
  214. 18   G    640 x 480      16/256K   VGA,SVGA                 VGA,SVGA
  215. 19   G    320 x 200      256/256K  VGA,MCGA,SVGA            VGA,SVGA
  216. 20   G    320 x 200      256/256K  VGA,SVGA                 VGA,SVGA
  217. 21   G    320 x 400      256/256K  VGA,SVGA                 VGA,SVGA
  218. 22   G    320 x 240      256/256K  VGA,SVGA                 VGA,SVGA
  219. 23   G    320 x 480      256/256K  VGA,SVGA                 VGA,SVGA
  220. 24   G    640 x 400      256/256K  SVGA                     SVGA
  221. 25   G    640 x 480      256/256K  SVGA                     SVGA
  222. 26   G    800 x 600      256/256K  SVGA                     SVGA
  223. 27   G    1024 x 768     256/256K  SVGA                     SVGA
  224. 28   G    800 x 600      16/256K   SVGA                     SVGA
  225. 29   G    1024 x 768     16/256K   SVGA                     SVGA
  226.  
  227. Q. What SVGA chipsets does Fastgraph support?
  228. A. Ahead "A" type
  229.    Ahead "B" type
  230.    ATI 18800
  231.    ATI 18800-1
  232.    ATI 28800
  233.    ATI 38800 (mach8)
  234.    ATI 68800 (mach32)
  235.    ATI 88800 (mach64)
  236.    Avance Logic 2000 series
  237.    Chips & Technologies 82c451/455/456
  238.    Chips & Technologies 82c452
  239.    Chips & Technologies 82c453
  240.    Cirrus Logic 5400 series
  241.    Cirrus Logic 6400 series
  242.    Genoa 6000 series
  243.    NCR 77C22/77C32
  244.    Oak OTI-067
  245.    Oak OTI-077
  246.    Oak OTI-087
  247.    Paradise PVGA1a
  248.    Paradise WD90C00/WD90C10
  249.    Paradise WD90C11/WD90C30/WD90C31/WD90C33
  250.    S3
  251.    Trident 8800
  252.    Trident 8900/9000
  253.    Tseng ET3000
  254.    Tseng ET4000
  255.    Video7
  256.    VESA
  257.  
  258. Q. Are any chipsets problematic?
  259. A. Some chipsets, notably those in laptops, sometimes fail the autodetection.
  260. Since it is still possible to initialize those chipsets, we recommend you give
  261. your users some kind of manual override if the autodetection fails.
  262.  
  263. Q. Are any video cards problematic?
  264. A. We've found problems supporting the Diamond Viper card (and so have other
  265. programmers). At this time, that video card is supported through VESA only.
  266.  
  267. Q. What file formats does Fastgraph support?
  268. A. Fastgraph supports reading and writing PCX, GIF, and RLE files, and you can
  269. read (display) Autodesk Animator FLI/FLC files. We are planning to drop GIF
  270. support in the very near future because of the Unisys royalties.
  271.  
  272. Q. Are you going to replace GIF support with PNG support?
  273. A. Yes!
  274.  
  275. Q. What is PNG anyway?
  276. A. PNG is a major advance over the GIF format. It retains GIF's strength as a
  277. compressed, universal, portable format for 256-color images, and adds the
  278. capability of true color support with lossless compression missing from GIF.
  279. Thus by converting, you will not only be helping get the computer graphics
  280. community out from under the LZW patent, but you will be migrating your image
  281. collections to a new format that encompases both color-mapped and true color
  282. images. PNG has a simple, clear specification and comes with free sample
  283. encoding and decoding reference source code to enable developers to easily
  284. incorporate PNG support in their applications. PNG's lossless compression
  285. method has been thoroughly researched and judged free from patent problems.
  286. PNGs feature set allows the conversion of all GIF files.
  287.  
  288. Q. Are you going to do a Windows version of Fastgraph?
  289. A. We're working on it!
  290.  
  291. Q. Does Fastgraph support sound cards?
  292. A. No. You need a sound and music library for that, such as the WORX toolkit
  293. from Mystic Software, the Sound Operating System by HMI, Digpak/Midpak by the
  294. Audio Solution, or the DiamondWare Sound Toolkit by MVP Software.
  295.  
  296. Q. Does Fastgraph support horizontal scrolling?
  297. A. Not directly, but there are ways to do it. For an explanation, see Diana's
  298. book, Action Arcade Adventure Set, published by the Coriolis Group.
  299.  
  300. Q. Are Ted and Diana related?
  301. A. They are married.
  302.  
  303. Q. How come when I leave Ted email on CompuServe or the Internet, Diana
  304. answers it?
  305. A. Ted is "modem impaired".
  306.  
  307. Q. Can you tell me a little more about that A.A.A.S. book?
  308. A. The book documents a game engine for a side-scroller game. It includes the
  309. various editors including a level editor, sprite editor and palette manager,
  310. as well as code for smooth scrolling and sprite animation.
  311.  
  312. Q. Is there a Fastgraph FTP site?
  313. A. Yes. You can get Fastgraph files, including the shareware version, the
  314. documentation, and lots of examples and code from ftp.accessnv.com.
  315.  
  316. Q. So, briefly, what functions are in Fastgraph?
  317. A. See the summary of Fastgraph functions below.
  318.  
  319. --------------------------------------------------------------------------
  320.                     Summary of Fastgraph 4.0 functions
  321. --------------------------------------------------------------------------
  322.  
  323. Video initialization
  324. --------------------
  325. fg_automode  determine which available video mode offers the highest
  326.              resolution and number of colors
  327. fg_bestmode  choose the best video mode given resolution and video page
  328.              requirements
  329. fg_cursor    turn the text mode cursor on or off
  330. fg_egacheck  return information about the active EGA or VGA adapter and
  331.              display
  332. fg_getlines  get the number of text rows per video page
  333. fg_getmode   return the current video mode number
  334. fg_initpm    initialize Fastgraph's protected mode kernel
  335. fg_reset     erase the screen, restoring screen attributes if ANSI.SYS
  336.              is loaded
  337. fg_setlines  in EGA/VGA/SVGA text modes, establish 25, 43, or 50 line mode
  338. fg_setmode   establish a video mode and initialize Fastgraph
  339. fg_svgainit  autodetect the SVGA chipset (or VESA) and initialize
  340.              Fastgraph's SVGA kernel
  341. fg_testmode  determine whether or not a video mode is available on the
  342.              system
  343.  
  344. Coordinate systems
  345. ------------------
  346. fg_getmaxx   get the maximum x coordinate in screen space
  347. fg_getmaxy   get the maximum y coordinate in screen space
  348. fg_getview   return current viewport extremes
  349. fg_getworld  determine the current limits of the world space coordinate
  350.              system
  351. fg_initw     initialize the world space coordinate system
  352. fg_setview   define viewport extremes and position
  353. fg_setworld  define the floating point world space coordinate system
  354. fg_xalpha    translate screen space x coordinate to character space column
  355. fg_xconvert  translate character space column to screen space x coordinate
  356. fg_xscreen   translate world space x coordinate to screen space x coordinate
  357. fg_xview     translate horizontal viewport coordinate to screen space
  358. fg_xworld    translate screen space x coordinate to world space x coordinate
  359. fg_yalpha    translate screen space y coordinate to character space row
  360. fg_yconvert  translate character space row to screen space y coordinate
  361. fg_yscreen   translate world space y coordinate to screen space y coordinate
  362. fg_yview     translate vertical viewport coordinate to screen space
  363. fg_yworld    translate screen space y coordinate to world space y coordinate
  364.  
  365. Colors and palettes
  366. -------------------
  367. fg_colors    return number of colors available in the current video mode
  368. fg_defcolor  assign a color value to a virtual color index
  369. fg_getcolor  get the current color index (graphics modes) or display
  370.              attributes (text modes)
  371. fg_getdacs   get the RGB components of a block of DAC registers
  372. fg_getindex  get the color value assigned to a virtual color index
  373. fg_getrgb    get the RGB components of a specified DAC register
  374. fg_maprgb    map six-bit RGB components to a 16-color palette value
  375. fg_palette   assign a color value to a palette
  376. fg_palettes  define 16 palette register values
  377. fg_setattr   establish display attributes in text modes
  378. fg_setcolor  establish the current color index
  379. fg_setdacs   specify RGB components of a block of DAC registers
  380. fg_setrgb    define the RGB value of a palette or video DAC register
  381.  
  382. Graphics fundamentals
  383. ---------------------
  384. fg_box       draw a hollow rectangle
  385. fg_boxdepth  specify the outline size of a hollow rectangle
  386. fg_boxw      draw a hollow rectangle in world space
  387. fg_boxx      draw a hollow rectangle in XOR mode
  388. fg_boxxw     draw a hollow rectangle in XOR mode in world space
  389. fg_circle    draw a hollow circle
  390. fg_circlef   draw a filled circle
  391. fg_circlefw  draw a filled circle in world space
  392. fg_circlew   draw a hollow circle in world space
  393. fg_clprect   draw a clipped rectangle
  394. fg_clprectw  draw a clipped rectangle in world space
  395. fg_dash      draw a dashed line
  396. fg_dashrel   draw a dashed line relative to current position
  397. fg_dashrw    draw a relative dashed line in world space
  398. fg_dashw     draw a dashed line in world space
  399. fg_draw      draw a line
  400. fg_drawrel   draw a line relative to the current position
  401. fg_drawrelx  draw a relative XOR line
  402. fg_drawrw    draw a relative line in world space
  403. fg_drawrxw   draw a relative XOR line in world space
  404. fg_draww     draw a line in world space
  405. fg_drawx     draw an XOR line
  406. fg_drawxw    draw an XOR line in world space
  407. fg_drect     draw a dithered rectangle
  408. fg_drectw    draw a dithered rectangle in world space
  409. fg_ellipse   draw an ellipse
  410. fg_ellipsef  draw a filled ellipse
  411. fg_ellipsew  draw an ellipse in world space
  412. fg_ellipsfw  draw a filled ellipse in world space
  413. fg_erase     clear the active video page
  414. fg_fillpage  fill active video page with current color
  415. fg_flood     like fg_paint but observes the clipping limits
  416. fg_floodw    like fg_paintw but observes the clipping limits
  417. fg_getclip   return current clipping limits
  418. fg_getpixel  get the color value of specified pixel
  419. fg_getxbox   return fg_box left and right edge width
  420. fg_getxpos   get screen space x coordinate of graphics cursor
  421. fg_getybox   return fg_box top and bottom edge width
  422. fg_getypos   get the screen space y coordinate of graphics cursor
  423. fg_inside    check if a specified point is inside a convex polygon
  424. fg_move      position the graphics cursor
  425. fg_moverel   position the graphics cursor relative to current position
  426. fg_moverw    position the graphics cursor, relative, in world space
  427. fg_movew     position the graphics cursor in world space
  428. fg_paint     fast flood fill of any closed area, including an area with
  429.              holes
  430. fg_paintw    world space version of fg_paint
  431. fg_point     draw a point
  432. fg_pointw    draw a point in world space
  433. fg_pointx    draw a point in XOR mode
  434. fg_pointxw   draw a point in XOR mode in world space
  435. fg_polyedge  specify fg_polyfill right and bottom edge inclusion
  436. fg_polyfill  draw a filled convex polygon
  437. fg_polygon   draw an unfilled polygon
  438. fg_polygonw  draw an unfilled polygon in world space
  439. fg_polyline  draw an unfilled polygon from one vertex array
  440. fg_polyoff   define polygon offsets for fg_polyfill and fg_polyline
  441. fg_rect      draw a solid rectangle in screen space or character space
  442. fg_rectw     draw a solid rectangle in world space
  443. fg_setclip   establish limits of clipping region for primitives and
  444.              bitmapped images
  445. fg_setclipw  world space version of fg_setclip
  446.  
  447. Character display
  448. -----------------
  449. fg_chgattr   change display attribute for existing text in text modes
  450. fg_chgtext   change text while preserving the display attributes in text
  451.              modes
  452. fg_fontsize  enable 8x8, 8x14, or 8x16 ROM font (VGA/SVGA only)
  453. fg_getattr   get the display attribute of a given character cell in text
  454.              modes
  455. fg_getchar   get the character value of a given character cell in text modes
  456. fg_getxjust  return fg_print and fg_printc horizontal justification setting
  457. fg_getyjust  return fg_print and fg_printc vertical justification setting
  458. fg_justify   define justification settings for fg_print
  459. fg_locate    define row and column for character display
  460. fg_print     display hardware characters in screen space
  461. fg_printc    version of fg_print that performs clipping
  462. fg_setangle  define the orientation of software (stroked) characters
  463. fg_setratio  define the aspect ratio for software characters
  464. fg_setsize   define the height of software characters in screen space
  465. fg_setsizew  define the height of software characters in world space
  466. fg_swchar    display software (stroked) characters
  467. fg_swlength  compute the length of a string of software characters
  468. fg_swtext    display software characters
  469. fg_text      display hardware (ROM font) characters
  470. fg_textc     version of fg_text that supports clipping
  471. fg_where     return the text cursor position
  472.  
  473. Video page management
  474. ---------------------
  475. fg_allocate  create a virtual page in conventional memory
  476. fg_alloccms  create a logical page in conventional memory
  477. fg_allocems  create a logical page in expanded memory
  478. fg_allocxms  create a logical page in extended memory
  479. fg_findpage  find an available page number for virtual/logical pages
  480. fg_freepage  release a virtual or logical page
  481. fg_getaddr   get the segment address of the active video page
  482. fg_getentry  get address and type of a physical, virtual or logical page
  483. fg_getpage   get the active video page number
  484. fg_getvpage  get the number of the visual video page
  485. fg_initems   initialize expanded memory (EMS)
  486. fg_initxms   initialize extended memory (XMS)
  487. fg_pagesize  return video page size in bytes
  488. fg_resize    change the size of a video page (use with fg_pan)
  489. fg_setentry  set address and type of a physical, virtual or logical page
  490. fg_setpage   establish the active video page
  491. fg_setvpage  establish the visual video page
  492.  
  493. Virtual buffer management
  494. -------------------------
  495. fg_vbaddr    return address of a virtual buffer
  496. fg_vballoc   create a virtual buffer (allocate memory internally)
  497. fg_vbclose   close the active virtual buffer
  498. fg_vbcopy    copy rectangular region from one virtual buffer to another
  499. fg_vbcut     copy rectangular region from active video page to virtual buffer
  500. fg_vbdefine  create a virtual buffer (from previously allocated memory)
  501. fg_vbfree    release virtual buffer memory allocated with fg_vballoc
  502. fg_vbhandle  return handle of the active virtual buffer
  503. fg_vbinit    initialize Fastgraph's virtual buffer environment
  504. fg_vbopen    make an existing virtual buffer the active virtual buffer
  505. fg_vbpaste   copy rectangular region from virtual buffer to active video page
  506. fg_vbtcxfer  version of fg_vbpaste that supports transparent colors
  507. fg_vbundef   release a virtual buffer handle
  508.  
  509. Bitmapped image management
  510. --------------------------
  511. fg_clipmap   version of fg_drawmap that performs clipping
  512. fg_clipmask  draw a clipped masking map
  513. fg_clpimage  draw a clipped mode-specific bitmap
  514. fg_display   display a pixel run map
  515. fg_displayp  display a packed pixel run map
  516. fg_drawmap   draw a mode-independent bitmap
  517. fg_drawmask  draw a masking map
  518. fg_drwimage  draw a lightning-fast mode-specific bitmap
  519. fg_flipmask  draw an inverted masking map
  520. fg_flpimage  draw an inverted mode-specific bitmap
  521. fg_getimage  retrieve an image as a mode-specific bitmap
  522. fg_getmap    retrieve an image as a mode-independent bitmap
  523. fg_imagesiz  calculate the number of bytes required for mode-specific
  524.              bitmap storage
  525. fg_invert    invert orientation of a bitmapped image array
  526. fg_pack      translate "one pixel per byte" bitmap to mode-specific format
  527. fg_putimage  like fg_drwimage but doesn't check for transparent pixels
  528. fg_revimage  display a reversed mode-specific bitmap
  529. fg_revmask   display a reversed masking map
  530. fg_scale     scale a bitmapped image
  531. fg_shear     shear a bitmapped image
  532. fg_unpack    translate mode-specific bitmap to "one pixel per byte" format
  533.  
  534. Image file routines
  535. -------------------
  536. fg_dispfile  display a pixel run file, packed or unpacked
  537. fg_flicdone  close an FLI or FLC file
  538. fg_flichead  read an FLI or FLC file header
  539. fg_flicmode  determine optimal video mode for an FLI or FLC file
  540. fg_flicopen  open an FLI or FLC file
  541. fg_flicplay  play one or more frames from an FLI or FLC file
  542. fg_flicsize  return FLI or FLC image dimensions
  543. fg_flicskip  advance one or more frames in an FLI or FLC file
  544. fg_gifhead   read a GIF file global header and first local header
  545. fg_gifmode   determine optimal video mode for a GIF file
  546. fg_gifpal    retrieve palette information from a GIF file
  547. fg_gifrange  return GIF image dimensions
  548. fg_imagebuf  define the address and size of the image file buffer
  549. fg_loadpcx   load a PCX image into a virtual buffer
  550. fg_makegif   create a GIF file from a rectangular region of the active
  551.              video page
  552. fg_makepcx   create a PCX file from a rectangular region of the active
  553.              video page
  554. fg_makeppr   create a PPR file from a rectangular region of the active
  555.              video page
  556. fg_makespr   create an SPR file from a rectangular region of the active
  557.              video page
  558. fg_pattern   define dither patterns for pixel run maps
  559. fg_pcxhead   read a PCX file header into a 128-byte buffer
  560. fg_pcxmode   determine the optimal mode for displaying a PCX file
  561. fg_pcxpal    retrieve palette information from a PCX file
  562. fg_pcxrange  return PCX image dimensions
  563. fg_showflic  play an FLI or FLC file
  564. fg_showgif   display a GIF file
  565. fg_showpcx   display a PCX file
  566. fg_showppr   display a packed pixel run (PPR) file
  567. fg_showspr   display a standard pixel run (SPR) file (RLE)
  568.  
  569. Block transfer routines
  570. -----------------------
  571. fg_copypage  copy an entire physical, virtual, or logical page
  572. fg_getblock  transfer rectangular region from video memory to RAM
  573. fg_gethpage  get the number of the current "hidden" video page
  574. fg_putblock  transfer rectangular region from RAM to video memory
  575. fg_restore   fast rectangular area copy from hidden to visual page
  576. fg_restorew  world space version of fg_restore
  577. fg_save      fast rectangular area copy from visual to hidden page
  578. fg_savew     world space version of fg_save
  579. fg_sethpage  establish the hidden video page
  580. fg_tcdefine  define transparent color number for fg_tcxfer
  581. fg_tcmask    define transparent colors for fg_tcxfer
  582. fg_tcxfer    transfer rectangular area with transparent colors
  583. fg_transfer  fast rectangular region copy from any page to any page (bitblt)
  584.  
  585. Special effects
  586. ---------------
  587. fg_fadein    copy hidden to visual page in small, random increments
  588. fg_fadeout   erase the visual page in small, random increments
  589. fg_pan       change the screen origin for full-screen four-directional
  590.              smooth scrolling
  591. fg_panw      world space version of fg_pan
  592. fg_scroll    smooth vertical scrolling of rectangular area
  593. fg_split     enable or disable a split screen environment
  594.  
  595. Keyboard control
  596. ----------------
  597. fg_capslock  turn the CapsLock key on or off
  598. fg_getkey    wait for a keystroke or retrieve the next value from the
  599.              keystroke buffer
  600. fg_intkey    get the next entry from BIOS keyboard buffer if it is not empty
  601. fg_kbinit    enable or disable the low-level keyboard handler
  602. fg_kblast    return scan code of most recent keypress
  603. fg_kbreset   reset Fastgraph's low-level keyboard handler
  604. fg_kbtest    determine if a key is now pressed or released
  605. fg_numlock   get the state of the NumLock key
  606. fg_scrlock   get the state of the ScrollLock key
  607. fg_setcaps   turn the CapsLock key on or off
  608. fg_setnum    turn the NumLock key on or off
  609. fg_waitkey   wait for any keystroke
  610.  
  611. Mouse management
  612. ----------------
  613. fg_mouse256  define 256-color mouse cursor
  614. fg_mousebut  get information about the mouse - were buttons pressed, and
  615.              where?
  616. fg_mousecur  define the appearance of the mouse cursor in text modes
  617. fg_mousefin  unhook Fastgraph's XVGA or SVGA mouse handler
  618. fg_mouseini  initialize the mouse
  619. fg_mouselim  define limits the mouse movement
  620. fg_mousemov  position the mouse cursor
  621. fg_mousepos  get the current mouse position and button status
  622. fg_mouseptr  define shape and appearance of mouse cursor in graphics modes
  623. fg_mousespd  control the speed of mouse cursor relative to the speed of the
  624.              mouse
  625. fg_mousevis  make the mouse cursor visible or invisible
  626.  
  627. Joystick support
  628. ----------------
  629. fg_button    get a joystick's button status
  630. fg_getxjoy   get the horizontal position of the specified joystick
  631. fg_getyjoy   get the vertical position of the specified joystick
  632. fg_initjoy   initialize either joystick
  633. fg_intjoy    return keyboard codes analogous to joystick position and
  634.              button status
  635.  
  636. Sound effects and music
  637. -----------------------
  638. fg_hush      immediately stop any asynchronous sound or music
  639. fg_hushnext  stop asynchronous sound or music after the current iteration
  640. fg_music     play a sequence of musical notes
  641. fg_musicb    play asynchronous music (background music)
  642. fg_playing   determine whether there is any asynchronous sound in progress
  643. fg_quiet     stop continuous sound
  644. fg_resume    after suspending asynchronous music, continue the music
  645. fg_sound     produce a tone of specified frequency and duration
  646. fg_sounds    play a series of tones, concurrent with other activity
  647. fg_suspend   suspend asynchronous sound (see fg_resume)
  648. fg_voice     produce sound on TI sound chip (as in Tandy 1000)
  649. fg_voices    play a series of tones on TI sound chip, concurrent with other
  650.              activity
  651.  
  652. Timing
  653. ------
  654. fg_getclock  get the number of clock ticks since midnight
  655. fg_measure   benchmark the system speed to determine delay units for fg_stall
  656. fg_stall     stall for a given number of delay units (see fg_measure)
  657. fg_waitfor   delay a specified number of clock ticks (18.2 per second)
  658.  
  659. Miscellaneous
  660. -------------
  661. fg_getbanks  return current SVGA read and write bank numbers
  662. fg_memavail  determine the amount of conventional memory available to DOS
  663. fg_memory    return the amount of video memory present in kilobytes
  664. fg_setbanks  define SVGA read and write bank numbers
  665. fg_setfunc   specify the logical operation in EGA/VGA modes (XOR/OR/AND)
  666. fg_svgaver   return Fastgraph SVGA kernel version number
  667. fg_version   return Fastgraph version number
  668. fg_vgastate  save or restore the internal VGA state
  669. fg_waitvr    specify if functions wait internally for vertical retrace
  670.